/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package logic;

import GUI.QuestaoEdicaoGUI;
import entidades.Disciplina;
import entidades.Questao;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;

/**
 *
 * @author ricardo
 */
public class FuncoesQuestoesGUI {
        
    public static Disciplina ProcuraDisciplinaQuestao(String enumQuestao){
        List<Disciplina> listaDisciplinas = new ArrayList();
        listaDisciplinas = FuncoesDisciplinaGUI.ListarDisciplinas();
        List<Questao> listaQuestoes = new ArrayList();       
        String enunciadoQuestao;
        
        for (int i = 0; i < listaDisciplinas.size(); i++){
            try {
                listaQuestoes = listaDisciplinas.get(i).listarQuestao();
            } catch (Exception ex) {
                Logger.getLogger(FuncoesQuestoesGUI.class.getName()).log(Level.SEVERE, null, ex);
            }
            for (int j = 0; j < listaQuestoes.size(); j++){
                enunciadoQuestao = listaQuestoes.get(j).getEnunciadoQuestao();
                if(enunciadoQuestao.equalsIgnoreCase(enumQuestao))
                    return listaDisciplinas.get(i);
            }
        }
        return null;
    }
     
    public static int ProcurarQuestao(String enumQuestao, Disciplina disciplina){
        List<Questao> listaQuestoes = new ArrayList();       
       
        if(disciplina != null){
            try {
                listaQuestoes = disciplina.listarQuestao();
            } catch (Exception ex) {
                Logger.getLogger(FuncoesQuestoesGUI.class.getName()).log(Level.SEVERE, null, ex);
            }
            try {
                for(int i = 0; i < disciplina.listarQuestao().size(); i++){
                    if(enumQuestao.equalsIgnoreCase(listaQuestoes.get(i).getEnunciadoQuestao()))
                        return i;
                }
            } catch (Exception ex) {
                Logger.getLogger(FuncoesQuestoesGUI.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return -1;
    }
     
    public static int FuncionalidadeExcluir(String enumQuestao){
        int resultado = -1;
        if(enumQuestao != null){
            Disciplina disciplina = null;
            disciplina = ProcuraDisciplinaQuestao(enumQuestao);
            int index = ProcurarQuestao(enumQuestao, disciplina);

            if(index != -1){
                try {
                    disciplina.excluirQuestao(index);
                } catch (Exception ex) {
                    Logger.getLogger(FuncoesQuestoesGUI.class.getName()).log(Level.SEVERE, null, ex);
                }
                resultado = 0;
            }
        }
        return resultado;
    }
    
    public static int FuncionalidadeAlterar(String enumQuestao){
        int resultado = -1;
        if(enumQuestao != null){
            Disciplina disciplina = null;
            disciplina = ProcuraDisciplinaQuestao(enumQuestao);
            int index = ProcurarQuestao(enumQuestao, disciplina);

            if(index != -1){
                QuestaoEdicaoGUI f = new QuestaoEdicaoGUI(disciplina, index, 1);
                f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
                f.setVisible(true);
                resultado=0;
            } 
        }
        return resultado;
    }
     
    public static List<String> listarTopicos (String topicos){
        List<String> listaTopicos = new ArrayList<String>();
        String[] listaTopico  = topicos.split(";");
        listaTopicos.addAll(Arrays.asList(listaTopico));
        
        return listaTopicos; 
    }
}
